package com.xpqh.ai.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 聊天请求DTO
 */
@Data
public class ChatRequest {
    
    /**
     * 用户消息
     */
    @NotBlank(message = "消息内容不能为空")
    private String message;
    
    /**
     * 模型名称，如果不指定则使用默认模型
     */
    private String model;
    
    /**
     * 系统提示词
     */
    private String systemPrompt;
    
    /**
     * 温度参数，控制输出的随机性 (0.0-2.0)
     */
    private Double temperature;
    
    /**
     * 最大token数
     */
    private Integer maxTokens;
    
    /**
     * 会话历史消息
     */
    private List<ChatMessage> history;
    
    /**
     * 聊天消息
     */
    @Data
    public static class ChatMessage {
        /**
         * 消息角色：user, assistant, system
         */
        @NotNull
        private String role;
        
        /**
         * 消息内容
         */
        @NotBlank
        private String content;
    }
} 